Solid-State Devices (SSDs) use non-volatile memory as their storage medium and an example of non-volatile memory is NAND flash memory. The Flash Translation Layer (FTL), a firmware implemented in the SSDs, allows host operating systems to access the flash memory in a similar manner as accessing conventional hard disk drives (i.e. refer to FIG. 1). The FTL therefore plays a key role in SSDs in terms of performing data address mapping, garbage collection and wear leveling. Generally, FTL schemes can be classified into three respective groups depending on the granularity of address mapping performable: page-based, block-based, and hybrid FTL schemes.
For page-based FTL scheme, a logical page number (LPN) is mapped to a physical page number (PPN) in the flash memory. This mapping approach achieves high performance, high space usage and low garbage collection overhead, but requires a large working memory to store a large-sized mapping table (e.g. the mapping table size is 64 MB for a 32 GB SSD). Furthermore, page-based FTL is not scalable because the mapping table size linearly increases with the SSD capacity. Hence, it is challenging to use page-based FTL to manage large scale SSDs. On the other hand, block-based FTL significantly reduces the mapping table size and works reasonably well under sequential intensive workload. It however requires an expensive read-modify-write operation when writing only a part of a data block. Block-based FTL also encounters other issues in terms of poor performance, low space usage and high garbage collection overhead under random workload. In order to overcome the disadvantages of page-based and block-based FTL schemes, the hybrid FTL scheme was proposed. Hybrid FTL uses a block-based mapping to manage most data blocks and uses a page-based mapping to manage a small set of log blocks, which works as a buffer to accept incoming write requests. As such, it improves the write performance and only requires a small-sized mapping table. However, Hybrid FTL incurs expensive garbage collection overhead for random write dominant workloads.
Existing FTL schemes are unable to perform sufficiently well to handle enterprise-level workloads, which are a mixture of random and sequential accesses, because they suffer from inherent limitations in terms of performance, mapping table size, garbage collection overhead, and scalability.
One object of the present invention is therefore to address at least one of the problems of the prior art and/or to provide a choice that is useful in the art.